home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / db4less3.arc / EMP.FRG < prev    next >
Text File  |  1990-06-16  |  5KB  |  232 lines

  1. * Program............: D:\DBSYS\CLASSES\BT4W\EMP.FRG
  2. * Date...............: 11-17-88
  3. * Versions...........: dBASE IV, Report 1
  4. *
  5. * Notes:
  6. * ------
  7. * Prior to running this procedure with the DO command
  8. * it is necessary use LOCATE because the CONTINUE
  9. * statement is in the main loop.
  10. *
  11. *-- Parameters
  12. PARAMETERS gl_noeject, gl_plain, gl_summary, gc_heading, gc_extra
  13. ** The first three parameters are of type Logical.
  14. ** The fourth parameter is a string.  The fifth is extra.
  15. PRIVATE _peject, _wrap
  16.  
  17. *-- Test for no records found
  18. IF EOF() .OR. .NOT. FOUND()
  19.    RETURN
  20. ENDIF
  21.  
  22. *-- turn word wrap mode off
  23. _wrap=.F.
  24.  
  25. IF _plength < 8
  26.    SET DEVICE TO SCREEN
  27.    DEFINE WINDOW gw_report FROM 7,17 TO 11,62 DOUBLE
  28.    ACTIVATE WINDOW gw_report
  29.    @ 0,1 SAY "Increase the page length for this report."
  30.    @ 2,1 SAY "Press any key ..."
  31.    x=INKEY(0)
  32.    DEACTIVATE WINDOW gw_report
  33.    RELEASE WINDOW gw_report
  34.    RETURN
  35. ENDIF
  36.  
  37. _plineno=0          && set lines to zero
  38. *-- NOEJECT parameter
  39. IF gl_noeject
  40.    IF _peject="BEFORE"
  41.       _peject="NONE"
  42.    ENDIF
  43.    IF _peject="BOTH"
  44.       _peject="AFTER"
  45.    ENDIF
  46. ENDIF
  47.  
  48. *-- Set-up environment
  49. ON ESCAPE DO prnabort
  50. IF SET("TALK")="ON"
  51.    SET TALK OFF
  52.    gc_talk="ON"
  53. ELSE
  54.    gc_talk="OFF"
  55. ENDIF
  56. gc_space=SET("SPACE")
  57. SET SPACE OFF
  58. gc_time=TIME()      && system time for predefined field
  59. gd_date=DATE()      && system date  "    "    "     "
  60. gl_fandl=.F.        && first and last page flag
  61. gl_prntflg=.T.      && Continue printing flag
  62. gl_widow=.T.        && flag for checking widow bands
  63. gn_length=LEN(gc_heading)  && store length of the HEADING
  64. gn_level=2          && current band being processed
  65. gn_page=_pageno     && grab current page number
  66.  
  67.  
  68. *-- Initialize calculated variables.
  69. ACT=""
  70.  
  71. *-- Set up procedure for page break
  72. IF _pspacing > 1
  73.    gn_atline=_plength - (_pspacing + 1)
  74. ELSE
  75.    gn_atline=_plength - 1
  76. ENDIF
  77. ON PAGE AT LINE gn_atline EJECT PAGE
  78.  
  79. *-- Print Report
  80.  
  81. PRINTJOB
  82.  
  83. *-- Assign initial values to calculated variables.
  84. ACT=iif(active,'ACTIVE','NOT ACTIVE')
  85.  
  86. IF gl_plain
  87.    ON PAGE AT LINE gn_atline DO Pgplain
  88. ELSE
  89.    ON PAGE AT LINE gn_atline DO Pgfoot
  90. ENDIF
  91.  
  92. DO Pghead
  93.  
  94. gl_fandl=.T.        && first physical page started
  95.  
  96. *-- File Loop
  97. DO WHILE FOUND() .AND. .NOT. EOF() .AND. gl_prntflg
  98.    DO Upd_Vars
  99.    *-- Detail lines
  100.    IF .NOT. gl_summary
  101.       DO Detail
  102.    ENDIF
  103.    CONTINUE
  104. ENDDO
  105.  
  106. IF gl_prntflg
  107. ELSE
  108.    DO Reset
  109.    RETURN
  110. ENDIF
  111.  
  112. ON PAGE
  113.  
  114. ENDPRINTJOB
  115.  
  116. DO Reset
  117. RETURN
  118. * EOP: D:\DBSYS\CLASSES\BT4W\EMP.FRG
  119.  
  120. *-- Update summary fields and/or calculated fields in the detail band.
  121. PROCEDURE Upd_Vars
  122. ACT=iif(active,'ACTIVE','NOT ACTIVE')
  123. RETURN
  124. * EOP: Upd_Vars
  125.  
  126. *-- Set flag to get out of DO WHILE loop when escape is pressed.
  127. PROCEDURE prnabort
  128. gl_prntflg=.F.
  129. RETURN
  130. * EOP: prnabort
  131.  
  132. PROCEDURE Pghead
  133. ?
  134. IF .NOT. gl_plain
  135.    ?? "Page No." AT 0,
  136.    ?? _pageno PICTURE "999" AT 9
  137. ENDIF
  138. *-- Print HEADING parameter ie. REPORT FORM <name> HEADING <expC>
  139. IF .NOT. gl_plain .AND. gn_length > 0
  140.    ?? " "
  141.    ?? gc_heading FUNCTION "I;V"+;
  142.    LTRIM(STR(_rmargin-_lmargin-(_pcolno*2+2)))
  143. ENDIF
  144. IF .NOT. gl_plain
  145.    ?
  146. ENDIF
  147. IF .NOT. gl_plain
  148.    ?? gd_date AT 0
  149.    ?
  150. ENDIF
  151. ?? "EMPLOYEE REPORT" AT 30
  152. ?
  153. ?
  154. ?? ;
  155. "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒";
  156. + "▒▒▒▒▒▒▒▒▒▒";
  157. AT 0
  158. ?
  159. RETURN
  160. * EOP: Pghead
  161.  
  162.  
  163. PROCEDURE Detail
  164. IF 6 < _plength
  165.    IF gl_widow .AND. _plineno+5 > gn_atline
  166.       EJECT PAGE
  167.    ENDIF
  168. ENDIF
  169. ?
  170. ?? "▒▒" AT 7,
  171. ?? FNAME FUNCTION "T" AT 12,
  172. ?? " " ,
  173. ?? LNAME FUNCTION "T" 
  174. ?
  175. ?? "▒▒" AT 7,
  176. ?? ADDRESS FUNCTION "T" AT 12,
  177. ?? ACT FUNCTION "T" PICTURE "XXXXXXXXXX" AT 62
  178. ?
  179. ?? "▒▒" AT 7,
  180. ?? CITY FUNCTION "T" AT 12,
  181. ?? "," ,
  182. ?? STATE FUNCTION "T" ,
  183. ?? ZIP FUNCTION "T" AT 42
  184. ?
  185. ?? "▒▒" AT 7
  186. ?
  187. ?? "▒▒" AT 7,
  188. ?? "ID" AT 12,
  189. ?? EMPID FUNCTION "T" AT 15,
  190. ?? "Dept" AT 23,
  191. ?? DEPT FUNCTION "T" AT 28,
  192. ?? "Employment Date" AT 36,
  193. ?? EMPDATE AT 52
  194. ?
  195. RETURN
  196. * EOP: Detail
  197.  
  198.  
  199. PROCEDURE Pgfoot
  200. PRIVATE _box
  201. gl_widow=.F.         && disable widow checking
  202. EJECT PAGE
  203. *-- is the page number greater than the ending page
  204. IF _pageno > _pepage
  205.    GOTO BOTTOM
  206.    SKIP
  207.    gn_level=0
  208. ENDIF
  209. IF .NOT. gl_plain .AND. gl_fandl
  210.    DO Pghead
  211. ENDIF
  212. gl_widow=.T.         && enable widow checking
  213. RETURN
  214. * EOP: Pgfoot
  215.  
  216. *-- Process page break when PLAIN option is used.
  217. PROCEDURE Pgplain
  218. PRIVATE _box
  219. EJECT PAGE
  220. RETURN
  221. * EOP: Pgplain
  222.  
  223. *-- Reset dBASE environment prior to calling report
  224. PROCEDURE Reset
  225. SET SPACE &gc_space.
  226. SET TALK &gc_talk.
  227. ON ESCAPE
  228. ON PAGE
  229. RETURN
  230. * EOP: Reset
  231.  
  232.